Skip to content

lyrical: pin the Jetty majors of the gz vendors that drifted to Ionic on osx-arm64 - #208

Merged
traversaro merged 2 commits into
mainfrom
fix/lyrical-gz-abseil
Nov 9, 2026
Merged

traversaro merged 2 commits into
mainfrom
fix/lyrical-gz-abseil

Conversation

@Tobias-Fischer

Copy link
Copy Markdown
Collaborator

Fixes the lyrical osx-arm64 build-branch failure: the py312 build of ros_gz_bridge fails on every run with find_package(gz-transport): no config.

Cause: the py312 osx-arm64 build of gz_transport_vendor on the channel (np2py312h0d6c794_30) depends on gz-transport 14 (Ionic); every other build is on 15 (Jetty). Its libgz-transport requirement is unpinned, and the solver preferred the newest libabseil 20260817 / libprotobuf builds, which conda-forge's gz-transport 15 for osx-arm64 doesn't have yet. The py312 osx-arm64 builds of gz_gui_vendor (gz-gui 9), gz_sensors_vendor (9) and gz_sim_vendor (9) ended up on Ionic too.

Fix:

  • distros/lyrical/patch/dependencies.yaml: pin the Jetty majors the vendors need, libgz-transport 15.*, gz-gui 10.*, gz-sensors 10.*, libgz-sim 10.*.
  • build_number: 33 for the four vendors, so the Jetty builds replace the Ionic ones.
  • rs build-one: create the recipe's patch/ directory before copying; it crashed copying ros2-ros-gz-bridge.win.patch on macOS into a recipe without one.

Tested locally (osx-arm64): both variants of the transport vendor resolve gz-transport 15.1.0, and ros_gz_bridge builds for py312 and py314 against them. pixi run test passes (78).

Labelled build:lyrical + build:osx-arm64: the change to tools/ would otherwise build every distribution.

Unrelated: the lyrical osx-64 build-branch failures are GitHub 504s downloading pixi in "Setup pixi", not package failures.

🤖 Generated with Claude Code

Tobias-Fischer and others added 2 commits November 9, 2026 17:59
On osx-arm64 the py312 build of gz_transport_vendor resolved
libgz-transport 14 (Ionic): unpinned, the solver preferred the newest
libabseil/libprotobuf builds, which gz-transport 15 doesn't have yet there.
gz_gui/sensors/sim_vendor followed it (gz-gui 9, gz-sensors 9, gz-sim 9), and
ros_gz_bridge's py312 build fails on every lyrical osx-arm64 run
(find_package(gz-transport): no config). Pin gz-transport 15, gz-gui 10,
gz-sensors 10 and gz-sim 10 (what the vendors need, and what every other
build has) and rebuild the four vendors (build_number 33).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ches

The glob also copies a package's patches for other platforms (e.g.
ros2-ros-gz-bridge.win.patch on macOS) into a recipe that has no patch for
this platform, and so no patch/ directory: FileNotFoundError.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Tobias-Fischer Tobias-Fischer added build:lyrical PR build: build only lyrical (with other build:<distro> labels: only those) build:osx-arm64 Pull-request build only on osx-arm64 labels Nov 9, 2026
@Tobias-Fischer

Copy link
Copy Markdown
Collaborator Author

@traversaro this currently blocks main. You’re probably the best person so judge if this is the right approach.

@traversaro

Copy link
Copy Markdown
Member

@traversaro this currently blocks main. You’re probably the best person so judge if this is the right approach.

It is the correct approach, probably we need to extend it to all distros, but for sure it is the correct appoarch.

@traversaro
traversaro merged commit e5d541a into main Nov 9, 2026
13 of 16 checks passed
@traversaro
traversaro deleted the fix/lyrical-gz-abseil branch November 9, 2026 14:59
Tobias-Fischer added a commit that referenced this pull request Nov 10, 2026
Extends the four lyrical pins from #208 to all Gazebo vendors, as suggested in
review, so that no solve can mix Gazebo releases (an unpinned osx-arm64 py312
solve took gz-transport 14, Ionic). The majors come from the vendor tags in each
distribution's snapshot. rolling's vendors already target the next Gazebo
(prereleases such as gz-sim 11) that conda-forge does not ship, so rolling
builds against Jetty too. jazzy already pins Harmonic through versioned names
(gz-sim8, ...), and humble uses Fortress (libignition-*6).

The published vendor builds are all Jetty already, so nothing is rebuilt.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build:lyrical PR build: build only lyrical (with other build:<distro> labels: only those) build:osx-arm64 Pull-request build only on osx-arm64

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants